package com.nuyoah.controller;


import com.nuyoah.common.dto.TeachingPlanDto;
import com.nuyoah.common.lang.Result;
import com.nuyoah.entity.TeachingPlan;
import com.nuyoah.service.TeachingPlanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 存储每门课程具体的教学计划，与课程和教师关联
 *
 * @author xyx
 * @since 2024-06-25
 */
@RestController
@RequestMapping("/teaching_plan")
public class TeachingPlanController {

    @Autowired
    private TeachingPlanService teachingPlanService;

    /**
     * 根据教师ID获取教学计划信息。
     * 此接口用于查询指定教师的所有教学计划详情。
     *
     * @param teacherId 教师的唯一标识ID，用于定位教师的教学计划。
     * @return 返回包含教学计划详情的Result对象。
     *         如果教师未设置教学计划，则返回失败结果，提示“教师未设置教学计划”。
     *         如果查询成功，返回包含教学计划详情列表的成功结果。
     */
    //获取教学计划接口
    @RequestMapping("/getInfo")
    public Result getInfo(@RequestParam("teacherId") Integer teacherId){
        // 根据教师ID查询教学计划列表
        //根据教师id在教学计划表中查询教学计划信息
        List<TeachingPlan> list = teachingPlanService.getTeachingPlanByTeacherId(teacherId);
        // 检查查询结果是否为空，为空表示教师未设置教学计划
        if(list.isEmpty()){
            return Result.fail("教师未设置教学计划");
        }

        // 将教学计划实体转换为DTO对象，以便前端展示
        //将教学计划信息转换为dto对象
        List<TeachingPlanDto> dtoList = teachingPlanService.getTeachingPlanDtoList(list);

        // 返回查询成功的结果，包含教学计划DTO列表
        return Result.succ(dtoList);
    }

}
